package com.instance;

/**
 * @author : garvin
 * @version V1.0
 * @date : 2020年12月14日 16:59
 */
public class Child extends Parent implements ParentInterface {
    // 成员变量
    private String memberVar = initMemberVar();
    // 静态变量
    private static String staticVar = initStaticVar();

    // 静态代码块
    static {
        System.out.println("子类静态代码块被调用...");
    }

    // 成员代码块
    {
        System.out.println("子类成员代码块被调用...");
    }

    // 构造函数
    public Child() {
        System.out.println("子类构造函数被调用...");
    }

    /**
     * 初始化成员的方法, 输出一句话表示成员变量被初始化了
     * 初始化成员变量的时候 this指针也已经创建了,也输出一下
     */
    public String initMemberVar() {
        System.out.println("子类 this 指针: " + this);
        System.out.println("子类成员变量初始化...");
        return "initMemberVar";
    }

    /**
     * 初始化静态变量方法, 输出一句话表示静态变量被初始化了
     */
    public static String initStaticVar() {
        System.out.println("子类静态变量初始化...");
        return "initstaticVar";
    }

    public static void main(String[] args) {
        new Child();
        System.out.println();
        System.out.println();
        new Child();
    }
}
